MCP 문서 관리

메뉴

Google Sheets

Google Sheets

Google Sheets MCP 서버는 Google Sheets 스프레드시트 데이터에 접근하고 편집할 수 있는 Model Context Protocol 서버입니다. 이 서버를 통해 AI 어시스턴트는 스프레드시트를 읽고 분석하며, 데이터를 업데이트하고, 차트와 피벗 테이블을 관리할 수 있습니다.

특징

  • 스프레드시트 데이터 읽기 및 쓰기
  • 시트, 행, 열 관리
  • 데이터 범위 및 셀 서식 지정
  • 수식 작성 및 계산
  • 차트 및 그래프 생성 및 수정
  • 피벗 테이블 생성 및 관리
  • 데이터 필터링 및 정렬
  • 조건부 서식 설정
  • 스프레드시트 공유 및 권한 관리
  • 데이터 검증 규칙 설정
  • 매크로 및 스크립트 실행
  • 셀 주석 및 코멘트 관리
  • 시트 간 데이터 복사 및 이동
  • 대량 데이터 작업 최적화

API

리소스

sheets://spreadsheets/{spreadsheet_id}

  • 특정 스프레드시트의 정보와 시트 목록을 제공합니다.

sheets://spreadsheets/{spreadsheet_id}/sheets/{sheet_id}

  • 특정 시트의 상세 정보와 데이터를 제공합니다.

도구

스프레드시트 관리

list_spreadsheets

사용자의 스프레드시트 목록을 조회합니다. - 입력: - max_results: (선택적) 최대 결과 수 - order_by: (선택적) 정렬 기준 (last_modified_time, name) - query: (선택적) 검색 쿼리 - page_token: (선택적) 페이지 토큰 - 출력: 스프레드시트 ID, 이름, 수정 시간 등을 포함한 스프레드시트 목록

get_spreadsheet

특정 스프레드시트의 정보를 조회합니다. - 입력: - spreadsheet_id: 스프레드시트 ID - include_grid_data: (선택적) 그리드 데이터 포함 여부 - 출력: 스프레드시트 제목, 시트 목록, 속성 등의 상세 정보

create_spreadsheet

새 스프레드시트를 생성합니다. - 입력: - title: 스프레드시트 제목 - sheets: (선택적) 초기 시트 정보 배열 - properties: (선택적) 스프레드시트 속성 - 출력: 생성된 스프레드시트 정보

update_spreadsheet_properties

스프레드시트 속성을 업데이트합니다. - 입력: - spreadsheet_id: 스프레드시트 ID - title: (선택적) 새 제목 - locale: (선택적) 새 로케일 - time_zone: (선택적) 새 시간대 - auto_recalc: (선택적) 자동 재계산 설정 - 출력: 업데이트된 스프레드시트 정보

시트 관리

list_sheets

스프레드시트 내의 시트 목록을 조회합니다. - 입력: - spreadsheet_id: 스프레드시트 ID - 출력: 시트 ID, 제목, 인덱스, 상태 등을 포함한 시트 목록

add_sheet

스프레드시트에 새 시트를 추가합니다. - 입력: - spreadsheet_id: 스프레드시트 ID - title: 시트 제목 - index: (선택적) 시트 인덱스 - rows: (선택적) 행 수 - columns: (선택적) 열 수 - hidden: (선택적) 숨김 여부 - tab_color: (선택적) 탭 색상 - 출력: 추가된 시트 정보

update_sheet_properties

시트 속성을 업데이트합니다. - 입력: - spreadsheet_id: 스프레드시트 ID - sheet_id: 시트 ID - title: (선택적) 새 제목 - index: (선택적) 새 인덱스 - hidden: (선택적) 새 숨김 설정 - right_to_left: (선택적) 오른쪽에서 왼쪽 방향 표시 여부 - tab_color: (선택적) 새 탭 색상 - 출력: 업데이트된 시트 정보

delete_sheet

시트를 삭제합니다. - 입력: - spreadsheet_id: 스프레드시트 ID - sheet_id: 삭제할 시트 ID - 출력: 삭제 결과

데이터 관리

get_values

특정 범위의 값을 조회합니다. - 입력: - spreadsheet_id: 스프레드시트 ID - range: 데이터 범위 (예: Sheet1!A1:B10) - major_dimension: (선택적) 기본 차원 (ROWS, COLUMNS) - value_render_option: (선택적) 값 렌더링 옵션 - date_time_render_option: (선택적) 날짜/시간 렌더링 옵션 - 출력: 데이터 값 배열

batch_get_values

여러 범위의 값을 일괄적으로 조회합니다. - 입력: - spreadsheet_id: 스프레드시트 ID - ranges: 데이터 범위 배열 - major_dimension: (선택적) 기본 차원 - value_render_option: (선택적) 값 렌더링 옵션 - date_time_render_option: (선택적) 날짜/시간 렌더링 옵션 - 출력: 각 범위의 데이터 값

update_values

특정 범위의 값을 업데이트합니다. - 입력: - spreadsheet_id: 스프레드시트 ID - range: 데이터 범위 - values: 새 값 배열 - major_dimension: (선택적) 기본 차원 - value_input_option: (선택적) 값 입력 옵션 (RAW, USER_ENTERED) - 출력: 업데이트된 셀 수 및 정보

batch_update_values

여러 범위의 값을 일괄적으로 업데이트합니다. - 입력: - spreadsheet_id: 스프레드시트 ID - data: 업데이트할 데이터 배열 (각 항목은 range와 values를 포함) - value_input_option: (선택적) 값 입력 옵션 - 출력: 업데이트된 셀 수 및 정보

append_values

특정 범위에 값을 추가합니다. - 입력: - spreadsheet_id: 스프레드시트 ID - range: 데이터 범위 - values: 추가할 값 배열 - value_input_option: (선택적) 값 입력 옵션 - insert_data_option: (선택적) 데이터 삽입 옵션 (OVERWRITE, INSERT_ROWS) - 출력: 추가된 셀 수 및 정보

clear_values

특정 범위의 값을 지웁니다. - 입력: - spreadsheet_id: 스프레드시트 ID - range: 지울 데이터 범위 - 출력: 지워진 범위 정보

서식 및 조건부 서식

get_cell_format

특정 범위의 셀 서식을 조회합니다. - 입력: - spreadsheet_id: 스프레드시트 ID - ranges: 서식을 조회할 범위 배열 - 출력: 셀 서식 정보

update_cell_format

셀 서식을 업데이트합니다. - 입력: - spreadsheet_id: 스프레드시트 ID - range: 업데이트할 범위 - format: 서식 정보 (폰트, 배경색, 테두리 등) - 출력: 업데이트된 셀 정보

add_conditional_format_rule

조건부 서식 규칙을 추가합니다. - 입력: - spreadsheet_id: 스프레드시트 ID - sheet_id: 시트 ID - range: 적용할 범위 - condition: 조건 (타입, 값 등) - format: 적용할 서식 - index: (선택적) 규칙 인덱스 - 출력: 추가된 규칙 정보

update_conditional_format_rule

조건부 서식 규칙을 업데이트합니다. - 입력: - spreadsheet_id: 스프레드시트 ID - sheet_id: 시트 ID - rule_id: 규칙 ID - condition: (선택적) 새 조건 - format: (선택적) 새 서식 - index: (선택적) 새 규칙 인덱스 - 출력: 업데이트된 규칙 정보

차트 및 데이터 시각화

create_chart

차트를 생성합니다. - 입력: - spreadsheet_id: 스프레드시트 ID - sheet_id: 시트 ID - chart_type: 차트 유형 (BAR, LINE, PIE 등) - source_range: 데이터 소스 범위 - title: (선택적) 차트 제목 - position: 차트 위치 - options: (선택적) 차트 옵션 - 출력: 생성된 차트 정보

update_chart

차트를 업데이트합니다. - 입력: - spreadsheet_id: 스프레드시트 ID - sheet_id: 시트 ID - chart_id: 차트 ID - chart_type: (선택적) 새 차트 유형 - source_range: (선택적) 새 데이터 소스 범위 - title: (선택적) 새 차트 제목 - position: (선택적) 새 차트 위치 - options: (선택적) 새 차트 옵션 - 출력: 업데이트된 차트 정보

피벗 테이블

create_pivot_table

피벗 테이블을 생성합니다. - 입력: - spreadsheet_id: 스프레드시트 ID - sheet_id: 시트 ID - source_range: 데이터 소스 범위 - rows: 행 필드 배열 - columns: 열 필드 배열 - values: 값 필드 배열 - filters: (선택적) 필터 배열 - start_row_index: 시작 행 인덱스 - start_column_index: 시작 열 인덱스 - 출력: 생성된 피벗 테이블 정보

update_pivot_table

피벗 테이블을 업데이트합니다. - 입력: - spreadsheet_id: 스프레드시트 ID - sheet_id: 시트 ID - pivot_table_id: 피벗 테이블 ID - rows: (선택적) 새 행 필드 배열 - columns: (선택적) 새 열 필드 배열 - values: (선택적) 새 값 필드 배열 - filters: (선택적) 새 필터 배열 - 출력: 업데이트된 피벗 테이블 정보

사용 방법

설치 및 구성

  1. 사전 요구 사항:
  2. Google 계정
  3. Google Sheets API 접근 권한
  4. OAuth 2.0 인증 설정

  5. MCP 서버 설치:

    pip install googlesheets-mcp-server

  6. Claude Desktop 구성:

    {
      "mcpServers": {
        "googlesheets": {
          "command": "python",
          "args": ["-m", "googlesheets_mcp"],
          "env": {
            "GOOGLE_SHEETS_CLIENT_ID": "your-client-id",
            "GOOGLE_SHEETS_CLIENT_SECRET": "your-client-secret",
            "GOOGLE_SHEETS_REDIRECT_URI": "your-redirect-uri",
            "GOOGLE_SHEETS_DEFAULT_SPREADSHEET": "your-default-spreadsheet-id"
          }
        }
      }
    }

  7. OAuth 인증 설정:

  8. Google Cloud Console에서 프로젝트 생성
  9. Google Sheets API 활성화
  10. OAuth 2.0 클라이언트 ID 생성
  11. 적절한 스코프 설정 (https://www.googleapis.com/auth/spreadsheets)
  12. 리디렉션 URI 구성

  13. 구성 옵션:

  14. GOOGLE_SHEETS_CLIENT_ID: OAuth 클라이언트 ID
  15. GOOGLE_SHEETS_CLIENT_SECRET: OAuth 클라이언트 시크릿
  16. GOOGLE_SHEETS_REDIRECT_URI: OAuth 리디렉션 URI
  17. GOOGLE_SHEETS_DEFAULT_SPREADSHEET: 기본 스프레드시트 ID
  18. GOOGLE_SHEETS_TOKEN_PATH: 토큰 저장 경로
  19. GOOGLE_SHEETS_CACHE_TTL: 캐시 수명(초) (기본값: 300)
  20. GOOGLE_SHEETS_LOG_LEVEL: 로그 수준 (기본값: INFO)

기본 사용 예시

  1. 스프레드시트 목록 보기:

    list_spreadsheets({
      max_results: 10,
      order_by: "last_modified_time"
    })

  2. 시트 데이터 읽기:

    get_values({
      spreadsheet_id: "1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms",
      range: "Sheet1!A1:E10"
    })

  3. 데이터 업데이트:

    update_values({
      spreadsheet_id: "1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms",
      range: "Sheet1!A1:B2",
      values: [
        ["이름", "점수"],
        ["김철수", 85]
      ],
      value_input_option: "USER_ENTERED"
    })

  4. 데이터 추가:

    append_values({
      spreadsheet_id: "1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms",
      range: "Sheet1!A:B",
      values: [
        ["이영희", 92],
        ["박지민", 78]
      ],
      value_input_option: "USER_ENTERED"
    })

  5. 차트 생성:

    create_chart({
      spreadsheet_id: "1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms",
      sheet_id: 0,
      chart_type: "BAR",
      source_range: {
        sheet_id: 0,
        start_row_index: 0,
        end_row_index: 5,
        start_column_index: 0,
        end_column_index: 2
      },
      title: "학생 점수",
      position: {
        row_index: 10,
        column_index: 3
      }
    })

  6. 피벗 테이블 생성:

    create_pivot_table({
      spreadsheet_id: "1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms",
      sheet_id: 0,
      source_range: {
        sheet_id: 0,
        start_row_index: 0,
        end_row_index: 20,
        start_column_index: 0,
        end_column_index: 5
      },
      rows: [
        {
          source_column_index: 0,
          show_totals: true
        }
      ],
      columns: [
        {
          source_column_index: 2,
          show_totals: true
        }
      ],
      values: [
        {
          source_column_index: 3,
          summarize_function: "SUM"
        }
      ],
      start_row_index: 25,
      start_column_index: 0
    })

보안 고려사항

  • Google API 자격 증명은 민감한 정보이므로 안전하게 관리해야 합니다.
  • OAuth 토큰은 안전하게 저장하고 관리해야 합니다.
  • 필요한 최소한의 권한만 요청하세요.
  • 민감한 데이터가 포함된 스프레드시트에 대한 접근은 특별히 주의하세요.
  • 스프레드시트 공유 설정을 정기적으로 검토하세요.
  • API 호출 제한을 고려하여 불필요한 요청을 최소화하세요.

연결된 구성 요소

  • Google Calendar - 일정 확인, 시간 찾기, 이벤트 추가/삭제를 위한 Google Calendar 통합
  • Google Tasks - Google Tasks API Model Context Protocol 서버
  • Gmail - Claude Desktop에서 자동 인증 지원이 포함된 Gmail 통합을 위한 MCP 서버
  • Airtable - Airtable 데이터베이스에 대한 읽기 및 쓰기 접근, 스키마 검사 포함